package types

type CategoryReq struct {
	Code string `json:"code"`
}

//	type Category struct {
//		CategoryChild []*CategoryChild `json:"categoryChild"`
//	}
type CategoryChild struct {
	CategoryId    int64            `json:"categoryId"`
	CategoryName  string           `json:"categoryName"`
	CategoryChild []*CategoryChild `json:"categoryChild"`
}
type CategoryResp struct {
	Token        string `json:"token"`
	RefreshToken string `json:"refreshToken"`
}

//	type Attribute struct {
//		CategoryChild []*AttributeChild `json:"categoryChild"`
//	}
type Attribute struct {
	Id                 int64                 `json:"id"`
	CreateTime         int64                 `json:"createTime"`
	Category1Id        int64                 `json:"category1Id"`
	AttributeName      string                `json:"attributeName"`
	AttributeValueList []*AttributeValueList `json:"attributeValueList"`
}
type AttributeValueList struct {
	Id          int64  `json:"id"`
	CreateTime  string `json:"createTime"`
	AttributeId int64  `json:"attributeId"`
	ValueName   string `json:"valueName"`
}
type SaveAlbumInfoReq struct {
	//	Field int `json:"myName,omitempty"`
	AlbumId                   int64                        `json:"albumId,optional"`
	AlbumIntro                string                       `json:"albumIntro" form:"albumIntro"`
	AlbumTitle                string                       `json:"albumTitle" form:"albumTitle"`
	Category3Id               int64                        `json:"category3Id" form:"category3Id"`
	CoverUrl                  string                       `json:"coverUrl" form:"coverUrl"`
	Discount                  string                       `json:"discount" form:"discount"`
	IsOpen                    string                       `json:"isOpen" form:"isOpen"`
	PayType                   string                       `json:"payType" form:"payType"`
	Price                     string                       `json:"price" form:"price"`
	PriceType                 string                       `json:"priceType" form:"priceType"`
	VipDiscount               string                       `json:"vipDiscount" form:"vipDiscount"`
	AlbumAttributeValueVoList []*AlbumAttributeValueVoList `json:"albumAttributeValueVoList,omitempty" form:"albumAttributeValueVoList"`
}
type AlbumAttributeValueVoList struct {
	AttributeId int64  `json:"attributeId" form:"attributeId"`
	ValueId     int64  `json:"valueId" form:"valueId"`
	ValueName   string `json:"valueName" form:"valueName"`
}
type FindUserAlbumReq struct {
	PageNum  string `path:"pageNum" json:"pageNum" form:"pageNum"`
	PageSize string `path:"pageSize" json:"pageSize" form:"pageSize"`
}
type DetailReq struct {
	AlbumId string `path:"albumId" json:"albumId" form:"albumId"`
}
type Records struct {
	Records []*Record `json:"records" form:"records"`
}
type Record struct {
	Id               int64  `json:"albumId" form:"albumId"`
	UserId           int64  `json:"userId" form:"userId"`
	AlbumIntro       string `json:"albumIntro" form:"albumIntro"`
	AlbumTitle       string `json:"albumTitle" form:"albumTitle"`
	Category3Id      int64  `json:"id" form:"id"`
	CoverUrl         string `json:"coverUrl" form:"coverUrl"`
	Discount         string `json:"discount" form:"discount"`
	IsOpen           string `json:"isOpen" form:"isOpen"`
	PayType          string `json:"payType" form:"payType"`
	Price            string `json:"price" form:"price"`
	PriceType        string `json:"priceType" form:"priceType"`
	VipDiscount      string `json:"vipDiscount" form:"vipDiscount"`
	TracksForFree    int64  `json:"tracksForFree" form:"tracksForFree"`
	SecondsForFree   int64  `json:"secondsForFree" form:"secondsForFree"`
	BuyNotes         string `json:"buyNotes" form:"buyNotes"`
	SellingPoint     string `json:"sellPoint" form:"sellPoint"`
	Status           string `json:"status" form:"status"`
	PlayStatNum      int64  `json:"playStatNum" form:"playStatNum"`
	SubscribeStatNum int64  `json:"subscribeStatNum" form:"subscribeStatNum"`
	BuyStatNum       int64  `json:"buyStatNum" form:"buyStatNum"`
	CommentStatNum   int64  `json:"commentStatNum" form:"commentStatNum"`
	//AlbumCommentStatNum int64  `json:"albumCommentStatNum" form:"albumCommentStatNum"`
}

type AlbumInfo struct {
	Id                      int64                  `json:"albumId" form:"albumId"`
	UserId                  int64                  `json:"userId" form:"userId"`
	AlbumIntro              string                 `json:"albumIntro" form:"albumIntro"`
	AlbumTitle              string                 `json:"albumTitle" form:"albumTitle"`
	Category3Id             int64                  `json:"category3Id" form:"category3Id"`
	CoverUrl                string                 `json:"coverUrl" form:"coverUrl"`
	IncludeTrackCount       int64                  `json:"includeTrackCount" form:"include"`
	IsFinished              string                 `json:"isFinished"`
	EstimatedTrackCount     int64                  `json:"estimatedTrackCount"`
	AlbumRichIntro          string                 `json:"albumRichIntro"`
	QualityScore            string                 `json:"qualityScore" form:"qualityScore"`
	Discount                string                 `json:"discount" form:"discount"`
	IsOpen                  string                 `json:"isOpen" form:"isOpen"`
	PayType                 string                 `json:"payType" form:"payType"`
	Price                   string                 `json:"price" form:"price"`
	PriceType               string                 `json:"priceType" form:"priceType"`
	VipDiscount             string                 `json:"vipDiscount" form:"vipDiscount"`
	TracksForFree           int64                  `json:"tracksForFree" form:"tracksForFree"`
	SecondsForFree          int64                  `json:"secondsForFree" form:"secondsForFree"`
	BuyNotes                string                 `json:"buyNotes" form:"buyNotes"`
	SellingPoint            string                 `json:"sellPoint" form:"sellPoint"`
	Status                  string                 `json:"status" form:"status"`
	PlayStatNum             int64                  `json:"playStatNum" form:"playStatNum"`
	SubscribeStatNum        int64                  `json:"subscribeStatNum" form:"subscribeStatNum"`
	BuyStatNum              int64                  `json:"buyStatNum" form:"buyStatNum"`
	CommentStatNum          int64                  `json:"commentStatNum" form:"commentStatNum"`
	AlbumAttributeValueList []*AlbumAttributeValue `json:"albumAttributeValueVoList" form:"albumAttributeValueVoList"`
}

type AlbumAttributeValue struct {
	AlbumId       int64  `json:"albumId" form:"albumId"`
	AttributeId   int64  `json:"attributeId"`
	ValueId       int64  `json:"valueId" form:"valueId"`
	AttributeName string `json:"attributeName" form:"attributeName"`
	ValueName     string `json:"valueName" form:"valueName"`
	CreateTime    int64  `json:"createTime" form:"createTime"`
}
type RemoteAlbumReq struct {
	AlbumId string `path:"albumId"`
}
type UploadTrackResp struct {
	MediaFileId string `json:"mediaFileId"`
	MediaUrl    string `json:"mediaUrl"`
}
type FindUserTrackReq struct {
	PageNum  int64  `path:"page" json:"page" form:"page"`
	PageSize int64  `path:"limit" json:"limit" form:"limit"`
	Status   string `path:"status" json:"status" form:"status"`
}
type FindUserTrackResp struct {
	RecordTracks []*RecordTrack `json:"records" form:"records"`
}
type RecordTrack struct {
	Id             int64  `json:"trackId" form:"trackId"`
	UserId         int64  `json:"userId" form:"userId"`
	AlbumId        string `json:"albumId" form:"albumId"`
	TrackTitle     string `json:"trackTitle" form:"trackTitle"`
	OrderNum       int64  `json:"OrderNum" form:"OrderNum"`
	TrackIntro     string `json:"trackIntro" form:"trackIntro"`
	TrackRichIntro string `json:"trackRichIntro" form:"trackRichIntro"`
	CoverUrl       string `json:"coverUrl" form:"coverUrl"`
	MediaDuration  string `json:"mediaDuration" form:"mediaDuration"`
	MediaFileId    string `json:"mediaFileId" form:"mediaFileId"`
	MediaSize      string `json:"mediaSize" form:"mediaSize"`
	MediaType      string `json:"mediaType" form:"mediaType"`
	VipDiscount    string `json:"vipDiscount" form:"vipDiscount"`
	TracksForFree  int64  `json:"tracksForFree" form:"tracksForFree"`
	IsOpen         string `json:"isOpen" form:"isOpen"`
	Status         string `json:"status" form:"status"`
	CreateTime     string `json:"createTime"`
	UpdateTime     string `json:"updateTime"`
	IsDeleted      int64  `json:"isDeleted"`
	PlayStatNum    int64  `json:"playStatNum" form:"playStatNum"`
	CollectStatNum int64  `json:"collectStatNum" form:"collectStatNum"`
	PraiseStatNum  int64  `json:"praiseStatNum" form:"praiseStatNum"`
	CommentStatNum int64  `json:"commentStatNum" form:"commentStatNum"`
}
type SaveTrackReq struct {
	TrackId     int64  `json:"trackId"`
	CoverUrl    string `json:"coverUrl"`
	MediaFileId string `json:"mediaFileId"`
	MediaUrl    string `json:"mediaUrl"`
	TrackIntro  string `json:"trackIntro"`
	TrackTitle  string `json:"trackTitle"`
}
type TrackInfoReq struct {
	TrackId string `path:"trackId" json:"trackId" form:"trackId"`
}
type TrackInfoResp struct {
	Id             int64  `json:"id" form:"id"`
	UserId         int64  `json:"userId" form:"userId"`
	AlbumId        int64  `json:"albumId" form:"albumId"`
	TrackTitle     string `json:"trackTitle" form:"trackTitle"`
	OrderNum       int64  `json:"OrderNum" form:"OrderNum"`
	TrackIntro     string `json:"trackIntro" form:"trackIntro"`
	TrackRichIntro string `json:"trackRichIntro" form:"trackRichIntro"`
	CoverUrl       string `json:"coverUrl" form:"coverUrl"`
	MediaDuration  string `json:"mediaDuration" form:"mediaDuration"`
	MediaFileId    string `json:"mediaFileId" form:"mediaFileId"`
	MediaSize      string `json:"mediaSize" form:"mediaSize"`
	MediaType      string `json:"mediaType" form:"mediaType"`
	MediaUrl       string `json:"mediaUrl" form:"mediaUrl"`
	VipDiscount    string `json:"vipDiscount" form:"vipDiscount"`
	TracksForFree  int64  `json:"tracksForFree" form:"tracksForFree"`
	IsOpen         string `json:"isOpen" form:"isOpen"`
	Status         string `json:"status" form:"status"`
	CreateTime     string `json:"createTime"`
	UpdateTime     string `json:"updateTime"`
	IsDeleted      int64  `json:"isDeleted"`
	PlayStatNum    int64  `json:"playStatNum" form:"playStatNum"`
	CollectStatNum int64  `json:"collectStatNum" form:"collectStatNum"`
	PraiseStatNum  int64  `json:"praiseStatNum" form:"praiseStatNum"`
	CommentStatNum int64  `json:"commentStatNum" form:"commentStatNum"`
}
type RemoteTrackReq struct {
	TrackId string `path:"trackId"`
}
type Category1Req struct {
	Category1Id string `path:"category1Id"`
}

type Category3 struct {
	Id          int64  `json:"id,omitempty"`
	CreateTime  string `json:"createTime,omitempty"`
	Name        string `json:"name,omitempty"`
	Category2Id int64  `json:"category2Id,omitempty"`
	OrderNum    int64  `json:"orderNum,omitempty"`
	IsTop       int64  `json:"isTop,omitempty"`
}
type ChannelResp struct {
	BaseCategory3 *BaseCategory3       `json:"baseCategory3,omitempty"`
	List          []*CategoryAlbumInfo `json:"list,omitempty"`
}
type BaseCategory3 struct {
	//*Cate3
	Id          int64  `json:"id,omitempty"`
	CreateTime  string `json:"createTime,omitempty"`
	Name        string `json:"name,omitempty"`
	Category2Id int64  `json:"category2Id,omitempty"`
	OrderNum    int64  `json:"orderNum,omitempty"`
	IsTop       int64  `json:"isTop,omitempty"`
	//List        []*CategoryAlbumInfo `json:"list,omitempty"`
}
type Cate3 struct {
	Id          int64  `json:"id,omitempty"`
	CreateTime  string `json:"createTime,omitempty"`
	Name        string `json:"name,omitempty"`
	Category2Id int64  `json:"category2Id,omitempty"`
	OrderNum    int64  `json:"orderNum,omitempty"`
	IsTop       int64  `json:"isTop,omitempty"`
}
type CategoryAlbumInfo struct {
	Id                      int64  `json:"id,omitempty"`
	AlbumTitle              string `json:"albumTitle,omitempty"`
	AlbumIntro              string `json:"albumIntro,omitempty"`
	AnnouncerName           string `json:"announcerName,omitempty"`
	CoverUrl                string `json:"coverUrl,omitempty"`
	IncludeTrackCount       int64  `json:"includeTrackCount,omitempty"`
	IsFinished              int64  `json:"isFinished,omitempty"`
	PayType                 string `json:"payType,omitempty"`
	CreateTime              string `json:"createTime,omitempty"`
	Category1Id             int64  `json:"category1Id,omitempty"`
	Category2Id             int64  `json:"category2Id,omitempty"`
	Category3Id             int64  `json:"category3Id,omitempty"`
	PlayStatNum             int64  `json:"playStatNum,omitempty"`
	SubscribeStatNum        int64  `json:"subscribeStatNum,omitempty"`
	BuyStatNum              int64  `json:"buyStatNum,omitempty"`
	CommentStatNum          int64  `json:"commentStatNum,omitempty"`
	HotScore                int64  `json:"hotScore,omitempty"`
	AttributeValueIndexList int64  `json:"attributeValueIndexList,omitempty"`
}
type GetBaseCategoryList3Resp struct {
	CategoryId    int64                       `json:"categoryId,omitempty"`
	CategoryName  string                      `json:"categoryName,omitempty"`
	CategoryChild []*GetBaseCategoryList3Resp `json:"categoryChild"`
}

type AlbumInfoReq struct {
	AttributeList *AlbumAttributeValue `json:"attributeList,optional"`
	Category1Id   int64                `json:"category1Id,optional"`
	Category2Id   int64                `json:"category2Id,optional"`
	Category3Id   int64                `json:"category3Id,optional"`
	KeyWord       string               `json:"keyword,optional"`
	Order         string               `json:"order,optional"`
	PageNo        int64                `json:"pageNo,optional"`
	PageSize      int64                `json:"pageSize,optional"`
}
type AlbumInfoResp struct {
	AlbumInfoList []*Album `json:"list"`
	PageNo        int64    `json:"pageNo,optional"`
	PageSize      int64    `json:"pageSize"`
	Total         int64    `json:"total,optional"`
	TotalPages    int64    `json:"totalPages,optional"`
}
type AlbumFindAllResp struct {
	AlbumInterface *FindAlbumResp `json:"albumDetailInfo"`
}
type FindAlbumResp struct {
	Announcer        *Announcer        `json:"announcer"`
	Album            *AlbumInfoV1      `json:"albumInfo"`
	AlbumStatVo      *AlbumStatVo      `json:"albumStatVo"`
	BaseCategoryView *BaseCategoryView `json:"baseCategoryView"`
	//IsSubscribe      bool              `json:"isSubscribe"`
	//StartPlayTrackId int64             `json:"startPlayTrackId"`
}
type AlbumStatVo struct {
	AlbumId          int64 `json:"albumId,omitempty"`
	PlayStatNum      int64 `json:"playStatNum,omitempty"`
	SubscribeStatNum int64 `json:"subscribeStatNum,omitempty"`
	BuyStatNum       int64 `json:"buyStatNum,omitempty"`
	CommentStatNum   int64 `json:"commentStatNum,omitempty"`
}

// Announcer 作者
type Announcer struct {
	Id            int64  `json:"id"`
	WxOpenId      string `json:"wxOpenId"`
	Nickname      string `json:"nickname"`
	AvatarUrl     string `json:"avatarUrl"`
	IsVip         int32  `json:"isVip"`
	VipExpireTime int64  `json:"vipExpireTime"`
}
type BaseCategoryView struct {
	Id            int64  `json:"id"`
	CreateTime    string `json:"createTime"`
	Category1Id   int64  `json:"category1Id"`
	Category1Name string `json:"category1Name"`
	Category2Id   int64  `json:"category2Id"`
	Category2Name string `json:"category2Name"`
	Category3Id   int64  `json:"category3Id"`
	Category3Name string `json:"category3Name"`
}

type Album struct {
	Id                int64  `json:"id,omitempty"`
	AlbumIntro        string `json:"albumIntro,omitempty"`
	AlbumTitle        string `json:"albumTitle,omitempty"`
	Category3Id       int64  `json:"category3Id,omitempty"`
	CoverUrl          string `json:"coverUrl,omitempty"`
	Discount          string `json:"discount,omitempty"`
	IsOpen            string `json:"isOpen,omitempty"`
	PayType           string `json:"payType,omitempty"`
	Price             string `json:"price,omitempty"`
	PriceType         string `json:"priceType,omitempty"`
	VipDiscount       string `json:"vipDiscount,omitempty"`
	UserId            int64  `json:"userId,omitempty"`
	TracksForFree     int64  `json:"tracksForFree,omitempty"`
	SecondsForFree    int64  `json:"secondsForFree,omitempty"`
	BuyNotes          string `json:"buyNotes,omitempty"`
	SellingPoint      string `json:"sellingPoint,omitempty"`
	Status            string `json:"status,omitempty"`
	PlayStatNum       int64  `json:"playStatNum,omitempty"`
	SubscribeStatNum  int64  `json:"subscribeStatNum,omitempty"`
	BuyStatNum        int64  `json:"buyStatNum,omitempty"`
	CommentStatNum    int64  `json:"commentStatNum,omitempty"`
	CreateTime        string `json:"createTime,omitempty"`
	Category1Id       int64  ` json:"category1Id,omitempty"`
	Category2Id       int64  `json:"category2Id,omitempty"`
	HotScore          string `json:"hotScore,omitempty"`
	AnnouncerName     string `json:"announcerName,omitempty"`
	IncludeTrackCount int64  `json:"includeTrackCount,omitempty"`
}
type KeyWordReq struct {
	Keyword string `path:"keyword"`
}
type KeyWordResp struct {
	Keywords []string `json:"keywords"`
}
type FindAlbumInfoReq struct {
	AlbumId int64 `path:"albumId"`
}
type AlbumInfoV1 struct {
	ID                      int64                  `json:"id"`
	CreateTime              string                 `json:"createTime"` // 你可以考虑使用 time.Time 类型，但需要自定义解析
	UserID                  int64                  `json:"userId"`
	AlbumTitle              string                 `json:"albumTitle"`
	Category3ID             int64                  `json:"category3Id"`
	AlbumIntro              string                 `json:"albumIntro"`
	CoverURL                string                 `json:"coverUrl"`
	IncludeTrackCount       int64                  `json:"includeTrackCount"`
	IsFinished              string                 `json:"isFinished"` // 可以考虑使用 bool 类型，但需要自定义解析
	EstimatedTrackCount     int64                  `json:"estimatedTrackCount"`
	AlbumRichIntro          string                 `json:"albumRichIntro"`
	QualityScore            string                 `json:"qualityScore"` // 可以考虑使用 float64 类型，但需要自定义解析
	PayType                 string                 `json:"payType"`
	PriceType               string                 `json:"priceType"`
	Price                   string                 `json:"price"`
	Discount                string                 `json:"discount"`
	VIPDiscount             string                 `json:"vipDiscount"`
	TracksForFree           int64                  `json:"tracksForFree"`
	SecondsForFree          int64                  `json:"secondsForFree"`
	BuyNotes                string                 `json:"buyNotes,omitempty"`
	SellingPoint            string                 `json:"sellingPoint,omitempty"`
	IsOpen                  string                 `json:"isOpen"` // 可以考虑使用 bool 类型，但需要自定义解析
	Status                  string                 `json:"status"`
	PlayStatNum             int64                  `json:"playStatNum"`
	SubscribeStatNum        int64                  `json:"subscribeStatNum"`
	BuyStatNum              int64                  `json:"buyStatNum"`
	HotScore                float64                `json:"hotScore"`
	CommentStatNum          int64                  `json:"commentStatNum"`
	AnnouncerName           string                 `json:"announcerName"`
	Category1Id             int64                  `json:"category1Id"`
	AlbumAttributeValueList []*AlbumAttributeValue `json:"albumAttributeValueVoList" form:"albumAttributeValueVoList"`
}
type FindTrackReq struct {
	AlbumId  string `path:"albumId"`
	PageNo   string `path:"pageNo"`
	PageSize string `path:"pageSize"`
}
type FindTrackResp struct {
	Records []*Track `json:"records"`
	Total   int64    `json:"total" form:"total"`
	Size    int64    `json:"size" form:"size"`
	Current int64    `json:"current" form:"current"`
	Pages   int64    `json:"pages" form:"pages"`
}
type Track struct {
	AlbumId       int64   `json:"AlbumId" `
	AlbumTitle    string  `json:"albumTitle"`
	TrackId       int64   `json:"trackId"`
	TrackTitle    string  `json:"trackTitle"`
	CoverUrl      string  `json:"coverUrl" form:"coverUrl"`
	MediaDuration float64 `json:"mediaDuration"` // Assuming duration is in seconds or floating point for precision
	OrderNum      int     `json:"orderNum"`
	// 播放
	PlayStatNum int64 `json:"playStatNum"`
	// 收藏
	CollectStatNum int64 `json:"collectStatNum"`
	// 点赞状态
	PraiseStatNUm int64 `json:"praiseStatNum"`
	// 评论
	CommentStatNum int64  `json:"commentStatNum"`
	CreateTime     string `json:"createTime"` // Assuming this is in ISO8601 format or needs to be parsed
	IsShowPaidMark bool   `json:"isShowPaidMark"`
	Status         string `json:"status"`
	IsChecked      int64  `json:"isChecked,omitempty"` // Pointer to handle optional field
	IsPlaying      int64  `json:"isPlaying,omitempty"` // Pointer to handle optional field
}
type FindRankingListReq struct {
	Category1Id int64  `path:"category1Id"`
	Dimension   string `path:"dimension"`
}

// type FindRankingListResp struct {
//
// }
type UpdateListenReq struct {
	AlbumId     int64   `json:"albumId"`
	TrackId     int64   `json:"trackId"`
	BreakSecond float64 `json:"breakSecond"`
}
type GetLatelyTackResp struct {
	UserId      int64   `json:"userId"`
	AlbumId     int64   `json:"albumId"`
	TrackId     int64   `json:"trackId"`
	BreakSecond float64 `json:"breakSecond"`
}
type GetTrackStatVoReq struct {
	TrackId int64 `path:"trackId"`
}
type GetTrackStatVoResp struct {
	PlayStatNum    int64 `json:"playStatNum"`
	CollectStatNum int64 `json:"collectStatNum"`
	PraiseStatNum  int64 `json:"praiseStatNum"`
	CommentStatNum int64 `json:"commentStatNum"`
}
type GetUserPaidTrackList struct {
	TrackCount int64   `json:"trackCount"`
	Price      float32 `json:"price"`
	Name       string  `json:"name"`
}
type GetUserPaidTrackListRes struct {
	GetUserPaidTrackList GetUserPaidTrackList `json:"TrackSettingInterface"`
}
type OrderInfoReq struct {
	ItemType   string `json:"itemType"`
	ItemId     int64  `json:"itemId"`
	TrackCount int64  `json:"trackCount,optional"`
}
type OrderInfoResp struct {
	TradeNo           string           `json:"tradeNo,omitempty"`
	PayWay            string           `json:"payWay,omitempty"`
	ItemType          string           `json:"itemType,omitempty"`
	OriginalAmount    int64            `json:"originalAmount,omitempty"`
	DerateAmount      int64            `json:"derateAmount,omitempty"`
	OrderAmount       int64            `json:"orderAmount,omitempty"`
	Timestamp         int64            `json:"timestamp,omitempty"`
	Sign              string           `json:"sign,omitempty"`
	OrderDetailVoList []*OrderDetailVo `json:"orderDetailVoList,omitempty"` //
	OrderDerateVoList []*OrderDerate   `json:"orderDerateVoList,omitempty"` //
}
type OrderDetailVo struct {
	ItemId    int64  `json:"itemId,omitempty"`
	ItemName  string `json:"itemName,omitempty"`
	ItemUrl   string `json:"itemUrl,omitempty"`
	ItemPrice int64  `json:"itemPrice,omitempty"`
}
type OrderDerate struct {
	DertateType  string `json:"dertateType,omitempty"`
	DerateAmount int64  `json:"derateAmount,omitempty"`
	Remarks      string `json:"remarks,omitempty"`
}
type SubmitOrderReq struct {
	TradeNo           string           `json:"tradeNo,omitempty"`
	PayWay            string           `json:"payWay,omitempty"`
	ItemType          string           `json:"itemType"`
	OriginalAccount   float32          `json:"originalAccount"`
	DerateAmount      float32          `json:"derateAmount"`
	OrderAmount       float32          `json:"orderAmount"`
	OrderDetailVoList []*OrderDetailVo `json:"orderDetailVoList,omitempty"` //
	OrderDerateVoList []*OrderDerate   `json:"orderDerateVoList,omitempty"` //
	Timestamp         float32          `json:"timestamp"`
	Sign              string           `json:"sign"`
}
type SubmitOrderResp struct {
	OrderNo string `json:"orderNo"`
}
